$(function () {//加载表格
    $('#dgValue').datagrid({
        loadMsg: '数据加载中，请稍后...',
        url: system + "/dicvalue/listInfo",
        pagination: true,
        singleSelect: false,//如果为true，则只允许选择一行。
        title: "字典信息列表",
        pageSize: pageSize,
        pageList: pageList,
        checkOnSelect: true,//当用户点击行的时候该复选框就会被选中或取消选中。
        striped: true,//是否显示斑马线效果。
        rownumbers: true,// 显示一个行号列
        fitColumns: false,//真正的自动展开/收缩列的大小，以适应网格的宽度，防止水平滚动。
        columns: [[
            {field: 'itemid', title: 'Order ID', width: 80, checkbox: true},
            {field: 'id', title: '编号', align: 'center', hidden: true},
            {field: 'code', title: '字典编码', align: 'center'},
            {field: 'name', title: '编码名称', align: 'center'},
            {field: 'value', title: '字典值', align: 'center'},
            {field: 'showmsg', title: '显示信息', align: 'center'},
            {field: 'ftype', title: '字典类别', align: 'center'},
            {
                field: 'status', title: '状态', align: 'center',
                formatter: function (value, row, index) {
                    if (1 == value) {
                        return "启用";
                    } else if (2 == value) {
                        return "未启用";
                    }
                }
            }
        ]],
        loadFilter: function (data) { //加载后台数据
            if (successcode != data.code) {
                return errorHandle(data);
            }
            return data.data;
        },
        //双击事件
        onDblClickRow: function (rowIndex, rowData) {
            viewValue(rowData);
        }
    }).datagrid("columnMoving");;
    initData();
})
//搜索的方法
function doSearch() {
    var queryParams = $("#dgValue").datagrid("options").queryParams;
    queryParams["selCode"] = $("#selCode").val();
    queryParams["selName"] = $("#selName").val();
    queryParams["strStatus"] = getCommboxValue("selStatus");
    $("#dgValue").datagrid("options").queryParams = queryParams;
    $("#dgValue").datagrid("load");
}
// 初始化加载下拉框的值
function initData() {
    $.ajax({
            type: "post",
            url: system + "/dicvalue/init",
            success: function (data) {
                if (successcode != data.code) {
                    return errorHandle(data);
                }
                var sysStatus = data.data.sysStatus;
                if (!isNull(sysStatus)) {
                    sysStatus.unshift({"showmsg": "==全部==", "value": ''});
                    $('#selStatus').combobox("loadData", sysStatus);
                }
            }, error: function (data) {
                $.messager.progress('close');
                $.messager.alert('系统提示', "系统异常，请稍后重试！", 'error');
            }
        }
    );
}

//查看字典值信息方法
function viewValue(rowData) {
    $('#myformValueDetail').form('disableValidation');//清除验证样式
    $('#dlgValueDetail').dialog({
        title: "查看字典值信息",
        buttons: [{
            text: '返回',
            iconCls: 'icon-back',
            handler: function () {
                $('#dlgValueDetail').dialog('close');
            }
        }
        ]
    }).dialog('open');
    $('#myformValueDetail').form('load', rowData);//页面赋值
}

//新增字典值信息弹出框
function addValue() {
    //新增的时候直接赋值空
    $("#dicValue").val("");
    $("#myformValueDetail").form('clear');//添加之前清空表达信息
    $('#dlgValueDetail').dialog({
        title: "新增字典值信息",
        buttons: [{
            text: '保存',
            iconCls: 'icon-save',
            handler: function () {
                saveItemValue(1);
            }
        }, {
            text: '返回',
            iconCls: 'icon-back',
            handler: function () {
                $('#dlgValueDetail').dialog('close');
            }
        }
        ]
    }).dialog('open');
    $('#myformValueDetail').form('enableValidation');//设置验证样式
    $('#language').combobox('setValue', "1");//设置下拉框默认选中
    $('#status').combobox('setValue', "1");
}


//修改字典值详细信息方法
function editValue() {//修改的时候不能修的值的信息
    $('#myformValueDetail').form('enableValidation');//设置验证样式
    var arr = $('#dgValue').datagrid('getSelections');
    if (null == arr || arr.length != 1) {
        $.messager.alert('系统提示', "请选择一行数据！", 'warning');
        return;
    }
    $("#dicValue").val(arr[0].value);
    $('#dlgValueDetail').dialog({
        title: "修改字典值信息",
        buttons: [{
            text: '保存',
            iconCls: 'icon-save',
            handler: function () {
                saveItemValue(2);
            }
        }, {
            text: '返回',
            iconCls: 'icon-back',
            handler: function () {
                $('#dlgValueDetail').dialog('close');
            }
        }
        ]
    }).dialog('open');
    $('#myformValueDetail').form('load', arr[0]);//页面赋值
}

//保存字典值信息
function saveItemValue(ftype) {
    //验证表单信息
    if (!$("#myformValueDetail").form('validate')) {  //验证表单信息
        return;
    }
    $.messager.confirm('系统提示', "确定保存字典值信息吗？", function (param) {
        if (!param) {
            return;
        }
        var url = system + "/dicvalue/editValue";
        if (1 == ftype) {
            url = system + "/dicvalue/addValue";
        }
        $('#myformValueDetail').form('submit', {
            url: url,
            onSubmit: function (param) {
                $.messager.progress({text: '正在处理中...',});
            }, success: function (data) {
                $.messager.progress('close');
                data = JSON.parse(data);
                if (successcode != data.code) {
                    return errorHandle(data);
                }
                //关闭弹出窗口
                $('#dlgValueDetail').dialog('close');
                $.messager.show({title: '系统提示', msg: data.message});
                $("#dgValue").datagrid("load");//刷新表格
            }, error: function (data) {
                $.messager.progress('close');
                $.messager.alert('系统提示', "系统异常，请稍后重试！", 'error');
            }
        });
    });
}


//删除字典值的方法
function delValue() {
    var arr = $('#dgValue').datagrid('getSelections');
    if (null == arr || arr.length == 0) {
        $.messager.alert('系统提示', "请选择你要删除的数据！", 'warning');
        return;
    }
    $.messager.confirm('系统提示', '确定要删除这' + arr.length + '条字典信息吗？', function (param) {
        if (!param) {
            return;
        }
        var ids = [];
        for (var i = 0; i < arr.length; i++) {
            ids.push(arr[i].id);
        }
        if (isNull(ids)) {
            return;
        }
        $.messager.progress({text: '正在加载中...',});
        $.ajax({
                type: "post",
                url: system + "/dicvalue/delValue",
                dataType: "json",
                data: {
                    ids: JSON.stringify(ids)
                },
                success: function (data) {
                    $.messager.progress('close');
                    if (successcode != data.code) {
                        return errorHandle(data);
                    }
                    $.messager.show({title: '系统提示', msg: data.message});
                    $("#dgValue").datagrid("load");//刷新表格
                }, error: function (data) {
                    $.messager.progress('close');
                    $.messager.alert('系统提示', "系统异常，请稍后重试！", 'error');
                }
            }
        );
    });
}


//添加验证信息
$.extend($.fn.validatebox.defaults.rules, {
    dicValueValidate: {
        validator: function (value, param) {
            if (!isNull($("#" + param[0]).val()) && !isNull(value)  && $("#" + param[0]).val() == value) {
                return true;
            }
            var code = $("#" + param[1]).val();
            var value = $("#" + param[2]).val();
            return checkDicValue(code, value);
        },
        message: "字典值已经存在，请重新输入!"
    }
})


//通过code和value判断值是不是已经存在
function checkDicValue(code, value) {
    var falg = true;
    //新增的时候dicValue为空，修改的时候修改前的值和修改后的不一致的时候
    if (isNull(value)) {
        return falg;
    }
    $.ajax({
            type: "post",
            url: system + "/dicvalue/checkDicValue",
            dataType: "json",
            async: false,
            data: {
                value: value,
                code: code
            },
            success: function (data) {
                if (successcode != data.code) {
                    return errorHandle(data);
                }
                if (data.data == true) {
                    falg = false;
                }
            }, error: function (data) {
                $.messager.alert('系统提示', "系统异常，请稍后重试！", 'error');
            }
        }
    );
    return falg;
}
